As computer networks grow larger and carry much more sensitive data, securing that data is becoming increasingly more important. However, a vast majority of networks are vulnerable to security attacks. In one form of attack, an eavesdropper listens to network communications to obtain security information from legitimate network users. With that information in hand, the eavesdropper can access sensitive data sent by the legitimate users. These security attacks are especially worrisome to devices that communicate via wireless technologies, e.g., that use the 802.11 protocol, because it is difficult or impossible to restrict physical access to their communications.
To protect the privacy of data against network attacks, data transmitted over a network are often encrypted. In a typical data encryption method, the sender and the receiver first agree upon a data-encoding scheme. The sender encrypts the data using the agreed-upon encoding scheme and sends the encrypted data to the receiver. Upon reception, the receiver decrypts the data using the agreed-upon encoding scheme. Although the encrypted data may still be eavesdropped, the eavesdropper cannot obtain the original data without knowing the agreed-upon encoding scheme. Thus, data encryption provides security protection for communications between the sender and the receiver.
To ensure that the data have not been corrupted in transit, the sender and receiver also agree upon a data integrity check scheme. The sender attaches data integrity check information (e.g., a checksum) to the data before encryption and transmission. The receiver applies the agreed-upon data integrity check scheme to the received and decrypted data. By comparing the receiver-calculated integrity check with the check sent with the data, the receiver verifies the integrity of the data. If the receiver-calculated integrity check matches the sent integrity check, the receiver accepts the data as valid. Otherwise, the receiver treats the data as invalid and discards them.
However, encryption and data integrity checking are not sufficient protection. Encrypted data are still subject to a number of attacks, for example, to a statistical attack. In a statistical attack, an eavesdropper analyzes a set of encrypted data packets in order to tease out patterns that are associated with the encoding scheme agreed upon by the sender and the receiver. From the patterns, the eavesdropper may discover the encoding scheme and use it to decrypt the encrypted data.
Because of the statistical nature of this method of attack, its accuracy improves with an increasing number of data packets analyzed. Thus one approach to frustrate statistical attacks is to limit the amount of data sent using any one encoding scheme. To do this, the agreed-upon encoding scheme may be changed frequently. However, changing the encoding scheme involves significant communications overhead for the sender and the receiver. What is needed is a way to frustrate statistical attacks without invoking the overhead of changing the agreed-upon encoding scheme.